package com.ruoyix.flowable.domain.bo;

import com.ruoyix.common.core.validate.AddGroup;
import com.ruoyix.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.util.Date;

import com.ruoyix.common.core.domain.BaseEntity;

/**
 * 流程任务扩展业务对象 bpm_task_ext
 *
 * @author ruoyi
 * @date 2023-11-30
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class BpmTaskExtBo extends BaseEntity {

    /**
     * 流程任务id
     */
    @NotBlank(message = "流程任务id不能为空", groups = { EditGroup.class })
    private String id;

    /**
     * 任务名称
     */
    @NotBlank(message = "任务名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String name;

    /**
     * 启动时间
     */
    @NotNull(message = "启动时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date startTime;

    /**
     * 结束时间
     */
    private Date endTime;

    /**
     * 流程实例id
     */
    @NotBlank(message = "流程实例id不能为空", groups = { AddGroup.class, EditGroup.class })
    private String processInstanceId;

    /**
     * 流程执行id
     */
    private String executionId;

    /**
     * 流程定义id
     */
    @NotBlank(message = "流程定义id不能为空", groups = { AddGroup.class, EditGroup.class })
    private String processDefinitionId;

    /**
     * 办理人或候选人
     */
    private String assignee;

    /**
     * 办理人或候选人ID
     */
    private String assigneeId;

    /**
     * 流程定义名称
     */
    @NotBlank(message = "流程定义名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String processDefinitionName;

    /**
     * 流程定义Key
     */
    @NotBlank(message = "流程定义Key不能为空", groups = { AddGroup.class, EditGroup.class })
    private String processDefinitionKey;

    /**
     * 父级任务id
     */
    private String parentTaskId;

    /**
     * 表单类型
     */
    @NotNull(message = "表单类型不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long formType;

    /**
     * 表单option信息
     */
    private String formOption;

    /**
     * 表单fields信息
     */
    private String formFields;

    /**
     * 自定义表单创建路径
     */
    private String formCustomCreatePath;

    /**
     * 自定义表单查看路径
     */
    private String formCustomViewPath;

    /**
     * 表单值
     */
    private String formVariables;

    /**
     * 备注
     */
    private String remark;



}
